package com.amsp.oa.oademo.entity;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;

@Data
@TableName("t_performance_bonus_base")
@ApiModel(value = "PerformanceBonusBase", description = "绩效奖金基数报批表")
//@JsonIgnoreProperties(ignoreUnknown = true) //过滤前端提交 不存在的字段 然后序列化
public class PerformanceBonusBase implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId(type = IdType.AUTO)
    @ApiModelProperty("主键ID")
    private Long id;
    
    @ApiModelProperty("工号")
    private String employeeId;
    
    @ApiModelProperty("姓名")
    private String name;
    
    @ApiModelProperty("任职部门")
    private String department;
    
    @ApiModelProperty("职务")
    private String position;
    
    @ApiModelProperty("职位等级")
    private String positionLevel;
    
    @ApiModelProperty("职系")
    private String jobSeries;
    
    @ApiModelProperty("入职日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDate entryDate;
    
    @ApiModelProperty("转正日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDate confirmationDate;
    
    @ApiModelProperty("参考绩效基数")
    private BigDecimal referenceBonusBase;
    
    @ApiModelProperty("申请绩效奖金基数")
    private BigDecimal applyBonusBase;
    
    @ApiModelProperty("生效日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDate effectiveDate;
    
    @ApiModelProperty("提报日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDate reportDate;
    
    @ApiModelProperty("部门经理意见")
    private String departmentManager;
    
    @ApiModelProperty("部长/总监意见")
    private String director;
    
    @ApiModelProperty("总经理意见")
    private String generalManager;
    
    @ApiModelProperty("人资主管意见")
    private String hrSupervisor;
    
    @ApiModelProperty("人资经理意见")
    private String hrManager;
    
    @ApiModelProperty("企管部部长意见")
    private String enterpriseManager;
    
    @ApiModelProperty("总裁/董事长意见")
    private String president;
    
    @ApiModelProperty("总裁/董事长是否同意")
    private Boolean presidentApproval;
    
    @ApiModelProperty("总裁/董事长是否暂缓")
    private Boolean presidentHold;
    
    @ApiModelProperty("状态(0:草稿,1:审核中,2:已通过,3:已驳回)")
    private Integer status;
    
    @TableField(fill = FieldFill.INSERT)
    @ApiModelProperty("创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createTime;
    
    @TableField(fill = FieldFill.INSERT_UPDATE)
    @ApiModelProperty("更新时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime updateTime;
    
    @ApiModelProperty("创建人")
    private String createBy;
    
    @ApiModelProperty("更新人")
    private String updateBy;
    
    @TableLogic
    @ApiModelProperty("是否删除")
    private Boolean isDeleted;
} 